<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
<script>
//     function demo(){

//     }

// let obj = new demo()

// obj.__proto__ ={
//     // name:'张三'
// }
// obj.__proto__.__proto__ ={
//    // name:'张三'
// }
// obj.__proto__.__proto__.__proto__ ={
//     // name:'张三'
// }

// console.log(obj.__proto__);
// console.log(obj.__proto__.__proto__);
// console.log(obj.__proto__.__proto__.__proto__);//返回null
    
    // console.log(obj.constructor == obj.__proto__.constructor);

    // console.log(obj.__proto__);
    // console.log( demo.prototype);
    

    // let arr = ['阿冷']
    // console.log(arr.concat('aleng.com'));

    // let hd ={}
    // // console.log(hd);
    // let xj ={}
    // console.log(Object.getPrototypeOf(hd) == Object.getPrototypeOf(xj));

   //     let jb = {name:'家宝'};
   // console.log(jb.hasOwnProperty("name"));

   // //完全数据字典对象
   //     let hd = Object.create(null,{
   //         name:{
   //            value:'啊冷'
   //         }
   //     })
   //     console.log(hd.hasOwnProperty("name")); //报错  hd.hasOwnProperty is not a function

    // let hd ={
    //     show(){
    //         console.log('阿冷');
    //     },
    //     render() {
    //         console.log('hd.render');
    //     },
    // }
    // console.log(hd);
    // hd.__proto__.render = function(){
    //     console.log('家宝');
    // }
    // hd.render()

    // let hd ={};
    // console.log(hd);

    // function User(Object){}
    //     User.__proto__.view=function(){
    //         console.log('User function view method');
    //     }

    //     User.view()
    // User.apply
    // console.dir(User);
    // User.prototype.show = function(){
    //     console.log('阿冷');
    // };
    // let hd = new User();

    // hd.show()
    // console.log(User.prototype == hd.__proto__);

    // let hd = new Object()
    // hd.name = '阿冷'
    // // console.dir(Object);
    // Object.prototype.show = function(){
    //     console.log('网址');
    // } 
    // // hd.show()
    // function User(){}
    // // console.log(User);
    // // console.log(User.prototype.__proto__ == User.__proto__.__proto__);
    // // console.dir(Object.prototype);
    // let xj = new User;
    // xj.show()

    // let hd ={}
    // console.log(hd.__proto__ == Object.prototype);
    // Array.prototype.show=function(){
    //     console.log('阿冷');
    // }
    // let arr = []
    // console.log(arr.__proto__ == Array.prototype);
    // arr.show()
    // let str = ''
    // console.log(str.__proto__ == String.prototype);
    // let bool = true
    // console.log(bool.__proto__ == Boolean.prototype);
    // let reg = /a/i;
    // console.log(reg.__proto__ == RegExp.prototype);
    // let obj ={}
    // console.log(obj.__proto__ == Object.prototype);

    // let hd ={name:'hd'}
    // let parend ={name:'parend',show(){
    //     console.log('parend method' + this.name);
    // }}
    // // console.log(hd.__proto__ == Object.prototype);
    // Object.setPrototypeOf(hd,parent)
    // // hd.show()
    // // parend.show()
    // console.log(Object.getPrototypeOf(hd));

    //原型就是一个对象，这个对象也有原型 Uaer --> prototype --> Object.prototype
    // function User(name){
    //     this.name=name;
    // }
    // User.prototype={
    //     constructor:User, //指向User 没有回报错
    //     show() {
    //         console.log(this.name);
    //     }
    // }
    // console.dir(User);
    // console.log(User.prototype.__proto__ == Object.prototype);
    // console.log(User.prototype.constructor == User);
    // let list = new User.prototype.constructor('李四')
    // console.log(list);
    // list.show()

    // function User(name){
    //     this.name = name;
        
    // }
    // User.prototype={
    //     constructor:User,
    //     show(){
    //         console.log(this.name);
    //     }
    // }
    // let hd = new User('阿冷')
    // console.log(hd);
    // function createByObject(obj,...args){
    //     const constructor = Object.getPrototypeOf(obj).constructor
    //     // console.log(constructor == User);
    //     return new constructor(...args)
    // }
    // let xj = createByObject(hd,'向军')
    // console.log(xj);
    // xj.show()
</script>